Serial Attached SCSI, or SAS, is a well known networking protocol. It is primarily used for storage networks. Serial Advanced Technology Attachment (SATA) is another protocol used for similar purposes. For example, the SAS or SATA protocol can be used to connect various storage resources (e.g., hard drives) to a computer that is to control them (e.g., a RAID controller). The SAS protocol is capable of supporting SATA storage devices in addition to native SAS storage devices. Thus, the SAS protocol includes at least two different transport layer protocols—serial SCSI protocol (SSP) which supports native SAS storage devices, and the Serial ATA Tunneling Protocol (STP) which supports SATA storage devices that are connected to a SAS network.
A RAID controller is a computer or a computing device that is connected to a storage area network and to multiple (usually a large number) of storage devices. The RAID controller facilitates access to the storage devices for other computers connected to the storage area network. A RAID controller can include one or more CPUs for processing data requests as well an input output controller (IOC) that is used by the CPUs to access the storage devices. The IOC can include one or more ports. Each port may be connected to a storage device or a group of two or more storage devices. This connection may be realized, for example, using a SAS network. In existing systems, each CPU is usually limited to communicating with a single port and with the storage devices that are connected to it. This is usually very limiting and may cause significant inefficiencies. For example, if for some reason one set of storage devices connected to a single port is getting a majority of data requests, then the CPU associated with that port may be overloaded while other CPUs are idle.